package com.doge.controller.wx.promotion;

import com.doge.bean.base.BaseData;
import com.doge.bean.base.BaseParam;
import com.doge.bean.base.BaseRespVo;
import com.doge.service.wx.coupon.WxCouponService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;

import java.util.Map;

/**
 * 微信小程序商城的Coupon优惠券的controller
 * Created By tian
 */
@RestController
@RequestMapping("wx/coupon")
public class CouponWxController {
    @Autowired
    WxCouponService wxCouponService;

    /**
     * 在微信商城首页优惠券专区展示优惠券
     * GET /wx/coupon/list?page=1&limit=10
     */
    @GetMapping("list")
    public BaseRespVo listCoupon(BaseParam baseParam){
        BaseData data = wxCouponService.listWxCoupons(baseParam);
        return BaseRespVo.ok(data);
    }

    /**
     * 在个人中心查看自己现在都领取了什么优惠券
     * /wx/coupon/mylist?status=0&page=1&limit=10
     * Short status:优惠券状态，0是可以用，1是过期，2是下架
     * Short type:优惠券赠送类型，如果是0则通用券，用户领取；如果是1，则是注册赠券；如果是2，则是优惠券码兑换
     * String tag: 优惠券状态，0是可以用，1是过期，2是下架（与status作用一样）
     */
    @GetMapping("mylist")
    public BaseRespVo listMyCoupon(BaseParam baseParam,Short status){
        BaseData data = wxCouponService.listMyCoupon(baseParam,status);
        return BaseRespVo.ok(data);
    }

    /**
     * 在商品页面中，点击立即购买，点击使用优惠券，进入选择优惠券的页面
     * GET /wx/coupon/selectlist?cartId=23&grouponRulesId=0
     */
    @GetMapping("selectlist")
    public BaseRespVo listCartCoupon(Integer cartId){
        BaseData data = wxCouponService.listCartCoupon(cartId);
        return BaseRespVo.ok(data);
    }

    /**
     * 在首页领取一张优惠券
     * 领取一张优惠券，limit(每人限制领券的数量)，每领取减1
     * POST wx/coupon/receive
     * {couponId: 15}
     */
    @PostMapping("receive")
    public BaseRespVo receiveCoupon(@RequestBody Map map){
        Integer couponId = (Integer) map.get("couponId");
        int rows = wxCouponService.receiveCoupon(couponId);
        return BaseRespVo.ok(null);
    }


    /**
     * 在个人中心的优惠券板块里面，兑换码，设定是每人限制领一张兑换码的优惠券（因为一个兑换码对应一个兑换券）
     * POST wx/coupon/exchange
     * {code: "DC6FF8SE"}
     */
    @PostMapping("exchange")
    public BaseRespVo exchangeCoupon(@RequestBody Map map){
        //兑换码
        String code = (String) map.get("code");
        int rows = wxCouponService.exchangeCoupon(code);
        return BaseRespVo.ok(null);

    }








}